In conventional telecommunications systems, system analog to digital converters (ADCs) must receive and digitally convert RF signals over a given dynamic range of amplitudes. The receiver must typically first filter the signals to remove unwanted alias signals and noise outside of the frequency range of interest. Therefore, while ADCs using such signal filtering are suitable for single air interface, single carrier applications, such ADCs are incapable of meeting the stringent requirements of wideband multi-air interface, multi-carrier systems, such as software-defined radios, which must process RF signals over a large dynamic range.
ADCs capable of eliminating non-linearities through segment shuffling, which involves converting the input binary code to a thermometer code and swapping, or re-organizing, the thermometer-coded DAC segments internal to the ADC at each sample point, currently exist. An 8-bit ADC would have 255 thermometer segments along with a 0 segment. If the input code is 00000110, six equally weighted thermometer segments are turned on. Because the six segments are not all the same size due to matching limitations of the manufacturing process, if the same six segments are always used for this input code, then variations in the segment size would translate into signal distortion. However, if a different set of six segments are used each time this code appears, much of the correlation to the input signal is destroyed, and the distortion terms are changed to noise.
While such segment shuffling is desirable for large amplitude RF signals to increase ADC dynamic range, it also increases the noise floor, and therefore increases the difficulty for the ADC of detecting and processing smaller amplitude RF signals. While ADCs could be programmed with segment shuffling to process signals over a wide bandwidth, such ADCs would have to be built to run at higher frequencies. Consequently, the coupling of such higher frequency ADCs would be more difficult to control, noise and distortion would be harder to manage, and overall ADC processing performance would be compromised.
ADCs having segment shuffling that can be turned on or off do exist. However, such ADCs are designed to work with segment shuffling being turned on or off depending upon the particular application. For example, if an ADC is implemented in a communications-type system that processes high amplitude signals, segment shuffling would be turned on to improve signal conversion linearity, as the subsequently increased level of the noise and distortion floor would have minimal impact on the detection and processing of the high amplitude signals. However, if the same ADC is implemented in, for example, a video system, segment shuffling would be turned off to lower the noise floor of the system to enable the ADC to detect and process the lower amplitude video signals. Therefore, while segment shuffling can be turned on or off when the ADC is installed, it has not been adaptively turned on or off based on the detected amplitudes of the signals to be processed by the ADC.